package cn.kpi.dao.common;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import cn.kpi.common.persistence.MyBatisDao;
import cn.kpi.entity.attendance.AttTbBatchEntity;

@MyBatisDao
public interface OrgSummaryDao {
    public List<Map> GetOrgSummaryList(@Param("where") String where, @Param("year") int year, @Param("month") int month, @Param("status") String status, @Param("currentmonth") int currentmonth) throws Exception;

    public List<Map> GetOrgSummaryListPDF(@Param("where") String where, @Param("year") int year, @Param("month") int month, @Param("status") String status, @Param("currentmonth") int currentmonth) throws Exception;

    public List<Map> GetOrgSummaryTranList(@Param("where") String where, @Param("year") int year, @Param("month") int month, @Param("status") String status, @Param("currentmonth") int currentmonth) throws Exception;

    public List<Map> GetOrgSummaryWorkList(@Param("where") String where, @Param("year") int year, @Param("month") int month, @Param("status") String status, @Param("currentmonth") int currentmonth) throws Exception;

    public List<Map> GetOrgSummaryDeptSubList(@Param("where") String where, @Param("year") int year, @Param("month") int month, @Param("status") String status, @Param("currentmonth") int currentmonth) throws Exception;

    public int InsertOrgSummary(AttTbBatchEntity entity) throws Exception;

    public int GetExitOrgSummary(@Param("orgid") Long orgid, @Param("year") int year, @Param("month") int month, @Param("orgsmytype") String orgsmytype) throws Exception;

    public List<AttTbBatchEntity> GetOrgSummaryListByOrgid(@Param("orgid") Long orgid, @Param("orgsmytype") String orgsmytype) throws Exception;

     public  List<Map> GetOrgSummaryWorkListPDF(@Param("year")int year, @Param("quarter")int quarter, @Param("orgid")int orgid);


    public int GetExitOrgStatusSummary(@Param("orgid") Long orgid, @Param("year") int year, @Param("month") int month, @Param("orgsmytype") String orgsmytype, @Param("status") String status) throws Exception;

    public int InsertOrgYearBacth(@Param("list") List<Integer> list, @Param("year") int year) throws Exception;

    public int InsertOrgYearTranBacth(@Param("list") List<Integer> list, @Param("year") int year) throws Exception;

    public int InsertOrgYearWorkBacth(@Param("list") List<Integer> list, @Param("year") int year) throws Exception;

    public int InsertOrgYearDeptSubBacth(@Param("list") List<Integer> list, @Param("year") int year) throws Exception;

    public int GetOrgYearCount(@Param("temptype") String temptype, @Param("year") int year, @Param("month") int month) throws Exception;
}
